/* 
 * File:   features.h
 * Author: gustavo
 *
 * Created on July 28, 2011, 3:09 PM
 */

#ifndef FEATURES_H
#define	FEATURES_H

#include "../../matrix/matrix.h"

#ifdef	__cplusplus
extern "C" {
#endif

	void imp_image_features_harris(ImpMatrix * Gray, ImpMatrix ** Harris);
	void imp_image_get_chess_squares(ImpMatrix * Corners, ImpMatrix * Or, ImpMatrix ** Squares, ImpMatrix ** Quads);


	void imp_matrix_derivative(ImpMatrix * Mat, ImpMatrix ** Dx, ImpMatrix ** Dy, ImpMatrix ** Dxy);
	void imp_matrix_derivative2(ImpMatrix * Mat, ImpMatrix ** Dxx, ImpMatrix ** Dyy);
	
	void imp_image_features_hessian_response(ImpMatrix * Mat, ImpMatrix ** Resp);
	
	
	void imp_matrix_derivative_with_mask(ImpMatrix * Mat, ImpMatrix * Mask, ImpMatrix ** Dx, ImpMatrix ** Dy, ImpMatrix ** Dxy);
	void imp_matrix_derivative2_with_mask(ImpMatrix * Mat, ImpMatrix * Mask, ImpMatrix ** Dxx, ImpMatrix ** Dyy);
	void imp_image_features_hessian_response_with_mask(ImpMatrix * Mat, ImpMatrix * Mask, ImpMatrix ** Resp);

#ifdef	__cplusplus
}
#endif

#endif	/* FEATURES_H */

